package com.ruoyi.develop.goodsSaledo.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.develop.goodsSaledo.domain.GoodsSaledo;
import org.apache.ibatis.annotations.Param;

/**
 * 请购单（自制/采购/外协）Mapper接口
 * @author qh
 * @date 2024-08-09
 */
public interface GoodsSaledoMapper {
    /**
     * 查询请购单（自制/采购/外协）
     *
     * @param id 请购单（自制/采购/外协）主键
     * @return 请购单（自制/采购/外协）
     */
    public GoodsSaledo selectById(String id);

    public GoodsSaledo listGoodsOrderInById(String id);

    /**
     * 查询请购单（自制/采购/外协）列表
     *
     * @param entity 请购单（自制/采购/外协）
     * @return 请购单（自制/采购/外协）集合
     */
    public List<GoodsSaledo> selectList(GoodsSaledo entity);

    public List<GoodsSaledo> listQinggou(GoodsSaledo entity);

    public List<GoodsSaledo> listQinggouIsDo(GoodsSaledo entity);

    public List<GoodsSaledo> listQinggouAll(GoodsSaledo entity);

    public List<GoodsSaledo> listSuoding(GoodsSaledo entity);

    public List<GoodsSaledo> listQinggouByBuyallId(GoodsSaledo entity);

    /**
     * 新增请购单（自制/采购/外协）
     *
     * @param entity 请购单（自制/采购/外协）
     * @return 结果
     */
    public int insert(GoodsSaledo entity);

    /**
     * 修改请购单（自制/采购/外协）
     *
     * @param entity 请购单（自制/采购/外协）
     * @return 结果
     */
    public int update(GoodsSaledo entity);

    public int updateStatusByMainId(@Param("status") String status, @Param("mainId") String mainId);

    public int updateStatusByMainIdCaigou(@Param("status") String status, @Param("mainId") String mainId);

    /**
     * 删除请购单（自制/采购/外协）
     *
     * @param id 请购单（自制/采购/外协）主键
     * @return 结果
     */
    public int deleteById(String id);

    /**
     * 批量删除请购单（自制/采购/外协）
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteByIds(String[] ids);

    public int deleteByGoodsSaleId(String goodsSaleId);

    public int isNotDo(String id);

    public int isDo(String id);

    public List<GoodsSaledo> listByProjectId(GoodsSaledo entity);

    public List<GoodsSaledo> listByMainIdAandCode(@Param("mainId") String mainId, @Param("goodsCode") String goodsCode);

    List<GoodsSaledo> listGoods(GoodsSaledo entity);

    List<GoodsSaledo> selectBySaleId(String goodsSaleId);

    List<GoodsSaledo> selectByDaohuoId(String daohuoId);

    List<GoodsSaledo> selectListMerge(GoodsSaledo entity);

    List<GoodsSaledo> listBuyRemainNotZero(GoodsSaledo entity);

    void deleteBuyLvDoId(String mainId);

    void replaceGoodsInfo(Map<String, Object> params);

}